perm filename MPRNT.OLD[MSS,LCS] blob sn#127298 filedate 1974-10-25 generic text, type T, neo UTF8
C  MPRNT.F4********** DRAWS MUSIC ON THE PLOTTER OR XGP **********
C *** READS DATA FROM CLFX, TAIL, FERM, BREP, REST, DRAW1, DRAW2
C  LOAD WITH PPSRT, PLTCMD, NOTWRT, ITMSBX, TREST, CLFZ, LOOK

	IMPLICIT INTEGER(A-Q,S-Z)
	REAL DIS,PWDS,DISX,A,B,STFF,CENTR,POS
	COMMON /DL/IXRX,SAVER,NAME
CC	DIMENSION V(78),LIST(200)
	COMMON/FRMT/F78F(1),FA1(1),FA5(1),ASK/SIZ/RSZ,JCEN,KCEN
	COMMON/ALF/INP(3),ML/XRN/RN(4000)/STF/RSTFAC(8),RSTJC
	COMMON /PLTR/PLT,RHT,DIS/PTR/PWDS(250),ITEM,L,I,IX
	COMMON RJB,JA,CENTR,JB,RJQ(20),JQ(20)/POSI/STFF(8),JJB,POS
	COMMON/DPY/GO,RXGP,TOP,BOT
	EQUIVALENCE (JC,JQ(1)),(JD,JQ(2)),(JE,JQ(3)),(RJE,RJQ(3))
	1,(RJF,RJQ(4)),(JG,JQ(5)),(JH,JQ(6)),(JF,JQ(4)),(RJG,RJQ(5))
	1,(RJD,RJQ(2)),(RJC,RJQ(1)),(I1,INP(1))
CC	1,(LIST,RN(3100)),(V,RN(3000))
	DATA STFF/-369.0,-246.0,-123.0,0.0,123.0,246.0,369.0,450.0/
	1 ,IP/'P'/

	TOP2=-999
	RXGP=0
	I1=0
C  RESTART PROG. OR TYPE 'F' TO FINISH PLOTTER.(IT'S NOT AUTOMATIC.)
2	PLOTIT=0
	RSZ=.845
	TOP=-999
	BOT=999
	PLT=0
	PWDS(1)=1.
	EDX=-1
	DO 1402 K=1,8
1402	RSTFAC(K)=1.
	M=1
	ITEM=0
	IXRX=0
	I=1
58	GO=-1
	GO TO 5504


11	CALL NOTWRT
57	IF(PLT)GO TO 6120
	ITEM=ITEM+1
	IF(EDX.NE.-1.AND.M.LT.I)GO TO 6120
	IF(PLOTIT.EQ.-2)GO TO 2311
	PWDS(ITEM+1)=I
	PLT=0
	GO=-1

5504	IF(I1.EQ.IP)GO TO 2311
59	TYPE 56
	ACCEPT 89,INP
311	JA=0
	IF(I1.NE.IP)GO TO 85
2311	CALL PLTCMD
	IF(PLOTIT.EQ.0)GO TO 3005
	I1=IP
	PLOTIT=-1
C  'PXG' OR 'PXC' GOES TO 'PLOT COMMAND' ROUTINE
89	FORMAT(72A1)

6531	M=1
	EDX=-1
	DO 5532 K=1,9
5532	JQ(K)=RJQ(K)
590	IF(PLOTIT.EQ.-1)GO TO 121
	I1=0
243	RJB=1.
C TO RUN THROUGH DATA.
241	RSZ=.845*RJB
	RJB=0
	RJC=0
	RJD=0
	TOP=-999
	BOT=999
C  GOES TO PLOTTER
85	M=1
	I=PWDS(ITEM+1)
	ITEM=0
8852	PLT=1
	EDX=0
	GO=0
	GO TO 6120

60	IF(JA.NE.88)GO TO 601
	RSTFAC(JC+4)=RJB
C  FOR STAFF SIZE FACTOR WITHOUT STAFF.
	GO TO 57
601	RSTJC=RSTFAC(JC+4)
5541	POS=STFF(JC+4)
	JB=RHORZ(RJB)
C  LINE IS DIVIDED INTO 200 POINTS.
	CENTR=POS
551	IF(JA.EQ.4.OR.JA.EQ.10)GO TO 25
	IF(JA.EQ.7)GO TO 81
	IF(JA.LE.12.OR.JA.EQ.30)GO TO 11
	IF(JA.EQ.18)GO TO 80
	CALL ALPHA
	GO TO 57

81	CALL KSIG
	GO TO 57

80	CALL METER
	GO TO 57

25	CALL ITMSUB
C   BAR LINES, BEAMS, STAFF LINES ****
	GO TO 57

3005	REWIND 21
C  GUARDS AGAINST LOSSAGE!
	PLOTIT=-2
	CALL IFILE(21,NAME)
C  JUMP TO READ BIG FILES
2200	J=ITEM+1
2202	READ(21),X,Y,(PWDS(K),K=J,X+J),(RN(K),K=I,Y+I-2)
CC	1 (PWDS(K),K=J,X+J),(RN(K),K=I,Y+I-2),ISCR,(V(K),K=1,ISCR),
CC	1 LCNT,(LIST(K),K=1,LCNT)
CC	READ(21),RSTFAC,STFF
	ITEM=ITEM+X
	I=Y
	GO TO 6531
121	IF(PLOTIT.EQ.0)GO TO 5504
5121	CALL PLTSRT
C  IF P5=0 MOVES UP AT START, IF P6=0 MOVES UP AT END.
	PLT=-1-JH
C  (JH) P8=1 OR 2 FOR 2-PASS PLOTS
	M=I
	I=I+M-1
	IF(RJB.EQ.0)RJB=1.
	DIS=RJB*1.24
	IF(RJC.EQ.0)RJC=RJB
	RHT=RJC*1.2
C   1.24 AND 1.2 ARE TO FIT 8 1/2 X 11 FORMAT
	BOT=-BOT*RHT
	IF(TOP2.EQ.-999)GO TO 8121
	BOT=BOT+TOP2
	GO TO 9121
8121	CALL PLOTS(K)
	RXGP=995.-BOT
9121	NOMOVE=RJF+RJG*148.*RJC
C  RJF=1 FOR NO MOVE AT END.  RJG=# OF STAVES TO MOVE FOR NEW STAFF 0.
	IXGP=JD
C (JD) P4=1 FOR XGP OUTPUT
	IF(JE.NE.0)GO TO 1122
	IF(RJD.EQ.0)GO TO 6121
	IF(TOP2.NE.-999)RXGP=RXGP-BOT
C  MOVES 0 POINT OVER EACH TIME.
	GO TO 1122
6121	CALL PLOT(0,BOT,-3)
C  MOVES PLOTTER UP IF P5=0.
1122	IXRX=IXGP

C  NEXT RUNS THROUGH DATA WITH NEW CHANGES.
6120	IF(M.GE.I)GO TO 7120
	CNT=RN(M)
	DO 6220 K=CNT+1,10
	JQ(K)=0
6220	RJQ(K)=0
	JA=RN(M+1)
	M=M+2
	RJB=RN(M)
	DO 9120 K=1,CNT
	RJQ(K)=RN(M+K)
9120	JQ(K)=RJQ(K)
	M=CNT+M+1
	IF(EDX.LE.0)GO TO 60
	GO TO 5504

7120	M=1
	IF(EDX)GO TO 71201
	IF(PLT.EQ.1)EDX=-1
	PLT=0
C  RETURNS FOR 'SL'=SAVE LAST
	GO TO 5504
71201	X=50*RHT
	TOP=TOP*RHT+X
	IF(NOMOVE.NE.0)TOP=0
	IF(NOMOVE.GT.1)TOP=NOMOVE
	IF(IXGP.EQ.0)CALL PLOT(0,TOP,3)
	TOP2=TOP
	GO TO 2
C  TO MOVE 'PLOTTER' FOR XGP OUTPUT
C  MOVES PLOTTER UP
C  ALWAYS START PLOT WITH BOTTOM UNIT ON PAGE AND WORK UP.

56	FORMAT(' PXG OR PXC'/)
	END